using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Resources;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace KPIS.GERP.Models.HRM
{
	[Table("HrmPsEmpSalaryHistory")]
    public class PsEmpSalaryHistory
    {
		[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
		[DataMember, Display(Name = "SalHisId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public int SalHisId { get; set; }

        [ForeignKey("Employee")]
		[DataMember, Display(Name = "EmpId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> EmpId { get; set; }

		[DataMember, Display(Name = "StartDate", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<System.DateTime> StartDate { get; set; }

		[DataMember, Display(Name = "EndDate", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<System.DateTime> EndDate { get; set; }

		[DataMember, Display(Name = "CmdRefNo", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string CmdRefNo { get; set; }

		[DataMember, Display(Name = "CmdName", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string CmdName { get; set; }

		[DataMember, Display(Name = "CmdDate", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<System.DateTime> CmdDate { get; set; }

		[DataMember, Display(Name = "PosRef", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string PosRef { get; set; }

		[DataMember, Display(Name = "PosName", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string PosName { get; set; }

		[ForeignKey("Class")]
		[DataMember, Display(Name = "ClassId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> ClassId { get; set; }

		[DataMember, Display(Name = "ClassName", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string ClassName { get; set; }

		[ForeignKey("JobSite")]
		[DataMember, Display(Name = "JobSiteId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> JobSiteId { get; set; }

		[DataMember, Display(Name = "JobSiteName", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string JobSiteName { get; set; }

		[DataMember, Display(Name = "SalaryNew", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryNew { get; set; }

		[DataMember, Display(Name = "SalaryOld", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryOld { get; set; }

		[DataMember, Display(Name = "SalaryPercentUp", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryPercentUp { get; set; }

		[DataMember, Display(Name = "SalaryUp", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryUp { get; set; }

		[DataMember, Display(Name = "SalaryMidpoint", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryMidpoint { get; set; }

		[DataMember, Display(Name = "SalaryExtra", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> SalaryExtra { get; set; }

        //[ForeignKey("SalaryExtra")]
        //[DataMember, Display(Name = "SalaryExtraId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        //public Nullable<int> SalaryExtraId { get; set; }

		[DataMember, Display(Name = "TotalScore", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<double> TotalScore { get; set; }

		[ForeignKey("Move")]
		[DataMember, Display(Name = "MoveId", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> MoveId { get; set; }

		[DataMember, Display(Name = "Remarks", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string Remarks { get; set; }

		[DataMember, Display(Name = "RecordStatus", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public string RecordStatus { get; set; }

		[DataMember, Display(Name = "CreatedBy", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> CreatedBy { get; set; }

		[DataMember, Display(Name = "CreatedWhen", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<System.DateTime> CreatedWhen { get; set; }

		[DataMember, Display(Name = "UpdatedBy", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<int> UpdatedBy { get; set; }

		[DataMember, Display(Name = "UpdatedWhen", ResourceType = typeof(Resources.PsEmpSalaryHistoriesResource))]
        public Nullable<System.DateTime> UpdatedWhen { get; set; }

		public virtual Employee Employee{ get; set; }

		public virtual MpClass Class { get; set; }

		public virtual HRM.JobSite JobSite { get; set; }

		public virtual EsMoveRequest Move { get; set; }

    }
}